// 1. 引入mongoose模块
const mongoose = require("mongoose");

// 2. 连接MongoDB数据库
//    注意：如果没有这个数据库，MongoDB会自动创建一个新的数据库
mongoose.connect("mongodb://127.0.0.1:27017/itying", {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

// 3. 操作users表（集合） 定义一个 Schema Schema里面的对象和数据库表里面的字段需要一致
const UserSchema = mongoose.Schema({
    username: String,
    password: String,
    email: String,
    age: Number,
    status: Number
});

// 4. 定义数据库模型 Model 操作数据库
/*
    model里面的第一个参数 要注意：
        1. 首字母大写
        2. 和数据库表（集合 ）名称对应  这个模型会和模型名称相同的复数的数据库表建立连接
*/

// const User = mongoose.model('User',UserSchema);    // 默认会操作 users表（集合）

const User = mongoose.model('User',UserSchema,'user');  //默认会操作第三个参数配置的表  user表（集合）

// 5. 查询数据
/* User.find({}, (err, data) => {
    if (err) {
        console.log("查询失败", err);
        return
    }
    console.log("查询成功", data);
}); */

// 6. 添加数据
/* // 6.1 实例化 Model 通过实例化 User Model 创建增加的数据
const user = new User({
    username: "张三",
    password: "123456",
    email: "123456@163.com",
    age: 18,
    status: 1
});

// 6.2 调用save方法保存数据到数据库
user.save((err) => {
    if (err) {
        console.log("添加失败", err);
        return
    }
    console.log("添加成功");
}); */

// 7. 修改数据
/* User.updateOne({ username: "张三" }, { age: 20 }, (err, data) => {
    if (err) {
        console.log("更新失败", err);
        return
    }
    console.log("更新成功", data);
}); */

// 8. 删除数据
User.deleteOne({ username: "张三" }, (err, data) => {
    if (err) {
        console.log("删除失败", err);
        return
    }
    console.log("删除成功", data);
});